package com.caoheng.core.common.body;


import java.math.BigDecimal;

public class PayRequestBody {

    private String merchantId;

    private String merchantOrderNo;

    private String payType;

    private BigDecimal amount;

    private String currency;

    private String clientIp;

    private String device;

    private String subject;

    private String body;

    private String notifyUrl;

    private String param1;

    private String param2;

    private String extra;

    private String sign;

    public static class Builder{

        private PayRequestBody requestParam;

        public Builder(){
            this.requestParam = new PayRequestBody();
        }

        public Builder merchantId(String merchantId){
            this.requestParam.merchantId = merchantId;
            return this;
        }

        public Builder merchantOrderNo(String orderNo){
            this.requestParam.merchantOrderNo = orderNo;
            return this;
        }

        public Builder payType(String payType){
            this.requestParam.payType = payType;
            return this;
        }

        public Builder amount(BigDecimal amount){
            this.requestParam.amount = amount;
            return this;
        }

        public Builder currency(String currency){
            this.requestParam.currency = currency;
            return this;
        }

        public Builder clientIp(String clientIp){
            this.requestParam.clientIp = clientIp;
            return this;
        }

        public Builder device(String device){
            this.requestParam.device = device;
            return this;
        }

        public Builder subject(String subject){
            this.requestParam.subject = subject;
            return this;
        }

        public Builder body(String body){
            this.requestParam.body = body;
            return this;
        }

        public Builder notifyUrl(String notifyUrl){
            this.requestParam.notifyUrl = notifyUrl;
            return this;
        }

        public Builder param1(String param1){
            this.requestParam.param1 = param1;
            return this;
        }

        public Builder param2(String param2){
            this.requestParam.param2 = param2;
            return this;
        }

        public Builder extra(String extra){
            this.requestParam.extra = extra;
            return this;
        }

        public Builder sign(String sign){
            this.requestParam.sign = sign;
            return this;
        }

        public PayRequestBody build(){
            return this.requestParam;
        }
    }

    public String getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(String merchantId) {
        this.merchantId = merchantId;
    }

    public String getMerchantOrderNo() {
        return merchantOrderNo;
    }

    public void setMerchantOrderNo(String merchantOrderNo) {
        this.merchantOrderNo = merchantOrderNo;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public String getClientIp() {
        return clientIp;
    }

    public void setClientIp(String clientIp) {
        this.clientIp = clientIp;
    }

    public String getDevice() {
        return device;
    }

    public void setDevice(String device) {
        this.device = device;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getParam1() {
        return param1;
    }

    public void setParam1(String param1) {
        this.param1 = param1;
    }

    public String getParam2() {
        return param2;
    }

    public void setParam2(String param2) {
        this.param2 = param2;
    }

    public String getExtra() {
        return extra;
    }

    public void setExtra(String extra) {
        this.extra = extra;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }
}
